using System.ComponentModel;
using System.Drawing;
using System.Xml.Serialization;

namespace Rsdn.Janus
{
    public interface IStyleConfig
    {
        string Theme { get; set; }

        string ExternalThemeFile { get; set; }

        Color LogBackColor { get; set; }

        [XmlIgnore]
        Font MessageTreeFont { get; set; }

        [Browsable(false)]
        string MessageTreeFontStr { get; set; }

        [XmlIgnore]
        Color MessageTreeBack { get; set; }

        [Browsable(false)]
        string MessageTreeBackStr { get; set; }

        [XmlIgnore]
        Color MessageColor { get; set; }

        [Browsable(false)]
        string MessageColorStr { get; set; }

        [XmlIgnore]
        Color SelfMessageColor { get; set; }

        [Browsable(false)]
        string SelfMessageColorStr { get; set; }

        [XmlIgnore]
        Color RepliesToSelfMessageColor { get; set; }

        [Browsable(false)]
        string RepliesToSelfMessageColorStr { get; set; }

        [XmlIgnore]
        Color MissingTopicColor { get; set; }

        [Browsable(false)]
        string MissingTopicColorStr { get; set; }

        [XmlIgnore]
        Color FavoriteMessageColor { get; set; }

        [Browsable(false)]
        string FavoritesMessageColorStr { get; set; }

        [XmlIgnore]
        Color ParentActiveMessageBackColor { get; set; }

        [Browsable(false)]
        string ParentActiveMessageBackColorStr { get; set; }

        [XmlIgnore]
        Color ChildActiveMessageBackColor { get; set; }

        [Browsable(false)]
        string ChildActiveMessageBackColorStr { get; set; }

        [XmlIgnore]
        Font NavigationTreeFont { get; set; }

        [Browsable(false)]
        string NavigationTreeFontStr { get; set; }

        [XmlIgnore]
        Color NavigationTreeForumColor { get; set; }

        [Browsable(false)]
        string NavigationTreeForumColorStr { get; set; }

        [XmlIgnore]
        Color NavigationTreeBack { get; set; }

        [Browsable(false)]
        string NavigationTreeBackStr { get; set; }

        [Browsable(false)]
        Color[] ForumPriorityColor { get; }

        [XmlIgnore]
        Color OptionsGridBack { get; set; }

        [Browsable(false)]
        string OptionsGridBackStr { get; set; }

        [XmlIgnore]
        Color OptionsGridViewBack { get; set; }

        [Browsable(false)]
        string OptionsGridViewBackStr { get; set; }

        [XmlIgnore]
        Color OptionsGridLine { get; set; }

        [Browsable(false)]
        string OptionsGridLineStr { get; set; }

        [XmlIgnore]
        Color OptionsGridText { get; set; }

        [Browsable(false)]
        string OptionsGridTextStr { get; set; }

        [XmlIgnore]
        Color Level1QuotaColor { get; set; }

        [XmlIgnore]
        Color Level2QuotaColor { get; set; }

        [XmlIgnore]
        Color Level3QuotaColor { get; set; }

        [Browsable(false)]
        string[] QuotaColorsStrs { get; set; }

        [XmlIgnore]
        Color QuotaPrefixColor { get; set; }

        [Browsable(false)]
        string QuotaPrefixColorStr { get; set; }

        int WriteMessageTabSize { get; set; }
    }
}